package com.abner.design.patterns.adapter.classadapter;

/**
 * 适配器介绍:
 * 		1) 适配器模式(Adapter Pattern)将某个类的接口转换成客户端期望的另一个接口表示，
 * 			主的目的是兼容性，让原本因接口不匹配不能一起工作的两个类可以协同工作。其别名为包装器(Wrapper)
 * 		2) 适配器模式属于结构型模式
 * 		3) 主要分为三类：类适配器模式、对象适配器模式、接口适配器模式
 *
 *  基本介绍：Adapter 类，通过继承 src 类，实现 dst 类接口，完成 src->dst 的适配
 * 类适配器应用案例:
 * 		以生活中充电器的例子来讲解适配器，充电器本身相当于 Adapter
 * 		220V 交流电相当于 src (即被适配者)，
 * 	   我们的目 dst(即 目标)是 5V 直流电
 * 分析:
 * 	1) Java 是单继承机制，所以类适配器需要继承 src 类这一点算是一个缺点,
 * 		因为这要求 dst 必须是接口，有一定局限性;
 * 	2) src 类的方法在 Adapter 中都会暴露出来，也增加了使用的成本。
 * 	3) 由于其继承了 src 类，所以它可以根据需求重写 src 类的方法，使得 Adapter 的灵活性增强了
 *
 * @author abner
 */
public class Client {

	public static void main(String[] args) {
		System.out.println(" === 类适配器模式 ====");
		Phone phone = new Phone();
		phone.charging(new VoltageAdapter());
	}

}
